home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_jvm30.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  44KB  |  2,035 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:RUN_FEATURE_6.use_current_state*/
  10. /*No:RUN_FEATURE_6.is_static*/
  11. /*No:RUN_FEATURE_6.ucs_false*/
  12.  
  13.  
  14. T0* r348start_position(T348* C){
  15. T0* R=NULL;
  16. R=r311start_position((T311*)((C)->_base_feature/*32*/));
  17. return R;
  18. }
  19.  
  20.  
  21. void r348routine_mapping_jvm(T348* C){
  22. T2 _stack_level=0;
  23. T2 _idx=0;
  24. T0* _ct=NULL;
  25. T0* _rt=NULL;
  26. _ct=(C)->_current_type/*4*/;
  27. r24push_target_as_target((T24*)(oBC12jvm));
  28. _stack_level=-((1)+(r24push_arguments((T24*)(oBC12jvm))));
  29. _rt=(C)->_result_type/*40*/;
  30. /*[IF*/
  31. if((_rt)!=((void*)(NULL))){
  32. _stack_level=(_stack_level)+(X52jvm_stack_space(_rt));
  33. }
  34. /*FI]*/
  35. _idx=r29idx_methodref((T29*)(oBC12constant_pool),(T0*)C);
  36. r23jvm_invoke((T23*)(X52run_class(_ct)),_idx,_stack_level);
  37. }
  38.  
  39.  
  40. T6 r348use_current(T348* C){
  41. T6 R=0;
  42. {int z1=(C)->_use_current_state/*28*/;
  43.  
  44. if((14==z1)){
  45. R=1;
  46. }
  47.  else 
  48. if((13==z1)){
  49. }
  50.  else 
  51. if((15==z1)){
  52. C->_use_current_state=16;
  53. /*[IRF3.4compute_use_current*/r348std_compute_use_current(C);
  54. /*]*/
  55. R=r348use_current(C);
  56. }
  57.  else {R=1;
  58. }}
  59. return R;
  60. }
  61. /*No:RUN_FEATURE_6.mapping_jvm*/
  62.  
  63.  
  64. void r348routine_afd_check(T348* C){
  65. /*[IF*/
  66. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  67. r367afd_check((T367*)((C)->_require_assertion/*20*/));
  68. }
  69. /*FI]*/
  70. /*[IF*/
  71. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  72. r220afd_check((T220*)((C)->_routine_body/*48*/));
  73. }
  74. /*FI]*/
  75. /*[IF*/
  76. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  77. r220afd_check((T220*)((C)->_rescue_compound/*52*/));
  78. }
  79. /*FI]*/
  80. /*[IF*/
  81. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  82. r219afd_check((T219*)((C)->_ensure_assertion/*24*/));
  83. }
  84. /*FI]*/
  85. }
  86.  
  87.  
  88. void r348std_compute_use_current(T348* C){
  89. /*[IF*/
  90. if(((C)->_use_current_state/*28*/)==(16)){
  91. /*[IF*/
  92. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  93. /*[IF*/
  94. if(r367use_current((T367*)((C)->_require_assertion/*20*/))){
  95. C->_use_current_state=14;
  96. }
  97. /*FI]*/
  98. }
  99. /*FI]*/
  100. }
  101. /*FI]*/
  102. /*[IF*/
  103. if(((C)->_use_current_state/*28*/)==(16)){
  104. /*[IF*/
  105. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  106. /*[IF*/
  107. if(r220use_current((T220*)((C)->_routine_body/*48*/))){
  108. C->_use_current_state=14;
  109. }
  110. /*FI]*/
  111. }
  112. /*FI]*/
  113. }
  114. /*FI]*/
  115. /*[IF*/
  116. if(((C)->_use_current_state/*28*/)==(16)){
  117. /*[IF*/
  118. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  119. /*[IF*/
  120. if(r220use_current((T220*)((C)->_rescue_compound/*52*/))){
  121. C->_use_current_state=14;
  122. }
  123. /*FI]*/
  124. }
  125. /*FI]*/
  126. }
  127. /*FI]*/
  128. /*[IF*/
  129. if(((C)->_use_current_state/*28*/)==(16)){
  130. /*[IF*/
  131. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  132. /*[IF*/
  133. if(r219use_current((T219*)((C)->_ensure_assertion/*24*/))){
  134. C->_use_current_state=14;
  135. }
  136. /*FI]*/
  137. }
  138. /*FI]*/
  139. }
  140. /*FI]*/
  141. /*[IF*/
  142. if(((C)->_use_current_state/*28*/)==(16)){
  143. C->_use_current_state=13;
  144. }
  145. /*FI]*/
  146. }
  147.  
  148.  
  149. T0* r348run_class(T348* C){
  150. T0* R=NULL;
  151. R=X52run_class((C)->_current_type/*4*/);
  152. return R;
  153. }
  154. /*No:RUN_FEATURE_6.result_type*/
  155. /*No:RUN_FEATURE_6.base_feature*/
  156. /*No:RUN_FEATURE_6.static_value_mem*/
  157. /*No:RUN_FEATURE_6.ensure_assertion*/
  158.  
  159.  
  160. T6 r348is_exported_in(T348* C,T0* a1){
  161. T6 R=0;
  162. R=r103gives_permission_to((T103*)(r348clients(C)),a1);
  163. return R;
  164. }
  165. /*No:RUN_FEATURE_6.fatal_error*/
  166. /*No:RUN_FEATURE_6.arguments*/
  167. /*No:RUN_FEATURE_6.us_io*/
  168.  
  169.  
  170. void r348fe_vffd7(T348* C){
  171. r21add_position(X52start_position((C)->_result_type/*40*/));
  172. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms348_203984);
  173. r21fatal_error((T21*)(oBC12eh),b1);
  174. }/*]*/
  175. }
  176.  
  177.  
  178. void r348jvm_define_opening(T348* C){
  179. T0* _t=NULL;
  180. /*[IF*/
  181. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  182. _t=X52run_type((C)->_result_type/*40*/);
  183. X52jvm_initialize_local(_t,r348jvm_result_offset(C));
  184. }
  185. /*FI]*/
  186. /*[IF*/
  187. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  188. r182jvm_initialize((T182*)((C)->_local_vars/*44*/));
  189. }
  190. /*FI]*/
  191. /*[IF*/
  192. if(r76ensure_check((T76*)(oBC12run_control))){
  193. /*[IF*/
  194. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  195. r219compile_to_jvm_old((T219*)((C)->_ensure_assertion/*24*/));
  196. }
  197. /*FI]*/
  198. }
  199. /*FI]*/
  200. /*[IF*/
  201. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  202. r367compile_to_jvm((T367*)((C)->_require_assertion/*20*/));
  203. }
  204. /*FI]*/
  205. }
  206.  
  207.  
  208. void r348jvm_define_closing(T348* C){
  209. /*[IF*/
  210. if(r76ensure_check((T76*)(oBC12run_control))){
  211. /*[IF*/
  212. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  213. r219compile_to_jvm((T219*)((C)->_ensure_assertion/*24*/),1);
  214. /*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
  215. /*]*/
  216. }
  217. /*FI]*/
  218. }
  219. /*FI]*/
  220. /*[IF*/
  221. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  222. X52jvm_push_local((C)->_result_type/*40*/,r348jvm_result_offset(C));
  223. }
  224. /*FI]*/
  225. }
  226. /*No:RUN_FEATURE_6.current_type*/
  227. /*No:RUN_FEATURE_6.clients_memory*/
  228.  
  229.  
  230. void r348add_client(T348* C,T0* a1){
  231. T2 _i=0;
  232. /*[IF*/
  233. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  234. {T343*n=malloc(sizeof(*n));
  235. *n=M343;
  236. r343with_capacity(n,4);
  237. C->_actuals_clients=(T0*)n;
  238. }
  239. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  240. }
  241. else{
  242. _i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
  243. /*[IF*/
  244. if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  245. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  246. }
  247. /*FI]*/
  248. }
  249. /*FI]*/
  250. r23add_client((T23*)(r348run_class(C)),a1);
  251. }
  252. /*No:RUN_FEATURE_6.ucs_in_computation*/
  253. /*No:RUN_FEATURE_6.us_std_input*/
  254.  
  255.  
  256. void r348make(T348* C,T0* a1,T0* a2,T0* a3){
  257. C->_current_type=a1;
  258. C->_name=a2;
  259. C->_base_feature=a3;
  260. /*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r348run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
  261. /*]*/
  262. r22incr_magic_count((T22*)(oBC12small_eiffel));
  263. C->_use_current_state=15;
  264. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  265. r348initialize(C);
  266. r22pop((T22*)(oBC12small_eiffel));
  267. }
  268. /*No:RUN_FEATURE_6.routine_body*/
  269. /*No:RUN_FEATURE_6.ucs_true*/
  270.  
  271.  
  272. void r348jvm_define(T348* C){
  273. T2 _idx_result=0;
  274. T2 _idx_flag=0;
  275. T2 _branch=0;
  276. T2 _result_space=0;
  277. _idx_result=r345idx_fieldref_for_result((T0*)C);
  278. _idx_flag=r345idx_fieldref_for_flag((T0*)C);
  279. _result_space=X52jvm_stack_space((C)->_result_type/*40*/);
  280. r348method_info_start(C);
  281. r28opcode_getstatic((T28*)(oBC12code_attribute),_idx_flag,1);
  282. _branch=r28opcode_ifne((T28*)(oBC12code_attribute));
  283. /*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
  284. /*]*/
  285. r28opcode_putstatic((T28*)(oBC12code_attribute),_idx_flag,-(1));
  286. r348jvm_define_opening(C);
  287. /*[IF*/
  288. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  289. r220compile_to_jvm((T220*)((C)->_routine_body/*48*/));
  290. }
  291. /*FI]*/
  292. r348jvm_define_closing(C);
  293. r28opcode_putstatic((T28*)(oBC12code_attribute),_idx_result,-(_result_space));
  294. r28resolve_u2_branch(_branch);
  295. r28opcode_getstatic((T28*)(oBC12code_attribute),_idx_result,_result_space);
  296. X52jvm_return_code(X52run_type((C)->_result_type/*40*/));
  297. r39finish((T39*)(oBC12method_info));
  298. }
  299. /*No:RUN_FEATURE_6.name*/
  300. /*No:RUN_FEATURE_6.us_std_output*/
  301. /*No:RUN_FEATURE_6.afd_check*/
  302.  
  303.  
  304. T0* r348clients(T348* C){
  305. T0* R=NULL;
  306. T0* _bfbc=NULL;
  307. T0* _bc=NULL;
  308. /*[IF*/
  309. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  310. _bc=X52base_class((C)->_current_type/*4*/);
  311. _bfbc=((T311*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  312. /*[IF*/
  313. if((_bc)==((void*)(_bfbc))){
  314. R=((T311*)((C)->_base_feature/*32*/))->_clients/*20*/;
  315. }
  316. else{
  317. R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
  318. }
  319. /*FI]*/
  320. C->_clients_memory=R;
  321. }
  322. else{
  323. R=(C)->_clients_memory/*8*/;
  324. }
  325. /*FI]*/
  326. return R;
  327. }
  328.  
  329.  
  330. void r348fall_down(T348* C){
  331. T0* _rf=NULL;
  332. T0* _sub_name=NULL;
  333. T0* _sub_bc=NULL;
  334. T0* _current_bc=NULL;
  335. T0* _sub_rc=NULL;
  336. T0* _current_rc=NULL;
  337. T2 _i=0;
  338. T0* _running=NULL;
  339. _current_rc=X52run_class((C)->_current_type/*4*/);
  340. _running=(((T23*)_current_rc))->_running/*12*/;
  341. /*[IF*/
  342. if((_running)!=((void*)(NULL))){
  343. _current_bc=X52base_class((C)->_current_type/*4*/);
  344. _i=(((T340*)_running))->_lower/*12*/;
  345. while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
  346. _sub_rc=r340item(((T340*)_running),_i);
  347. /*[IF*/
  348. if((_sub_rc)!=((void*)(_current_rc))){
  349. _sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
  350. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  351. _rf=r23get_feature(((T23*)_sub_rc),_sub_name);
  352. }
  353. /*FI]*/
  354. _i=(_i)+(1);
  355. }
  356. }
  357. /*FI]*/
  358. }
  359. /*No:RUN_FEATURE_6.rescue_compound*/
  360. /*No:RUN_FEATURE_6.actuals_clients*/
  361. /*No:RUN_FEATURE_6.ucs_not_computed*/
  362.  
  363.  
  364. T6 r348is_pre_computable(T348* C){
  365. T6 R=0;
  366. /*[IF*/
  367. if(r73fast_has((T73*)(oBC348frozen_general),X50to_string((C)->_name/*16*/))){
  368. R=1;
  369. }
  370.  else if((((C)->_arguments/*36*/)==((void*)(NULL)))&&(!(r348use_current(C)))){
  371. /*[IF*/
  372. if(((C)->_routine_body/*48*/)==((void*)(NULL))){
  373. R=1;
  374. }
  375.  else if(!(r76invariant_check((T76*)(oBC12run_control)))){
  376. R=r220is_pre_computable((T220*)((C)->_routine_body/*48*/));
  377. }
  378. /*FI]*/
  379. }
  380. /*FI]*/
  381. /*[IF*/
  382. if(R){
  383. /*[IF*/
  384. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  385. r367clear_run_feature((T367*)((C)->_require_assertion/*20*/));
  386. }
  387. /*FI]*/
  388. /*[IF*/
  389. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  390. /*[IRF3.3clear_run_feature*/((((T219*)((T219*)((C)->_ensure_assertion/*24*/))))->_run_feature)=(NULL);
  391. /*]*/
  392. }
  393. /*FI]*/
  394. }
  395. /*FI]*/
  396. return R;
  397. }
  398. /*No:RUN_FEATURE_6.us_std_error*/
  399.  
  400.  
  401. T2 r348jvm_local_variable_offset(T348* C,T0* a1){
  402. T2 R=0;
  403. R=X52jvm_stack_space((C)->_current_type/*4*/);
  404. /*[IF*/
  405. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  406. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  407. }
  408. /*FI]*/
  409. R=(R)+(r182jvm_offset_of((T182*)((C)->_local_vars/*44*/),a1));
  410. return R;
  411. }
  412. T0*oBC348frozen_general=NULL;
  413.  
  414.  
  415. T2 r348arg_count(T348* C){
  416. T2 R=0;
  417. /*[IF*/
  418. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  419. R=/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  420. }
  421. /*FI]*/
  422. return R;
  423. }
  424. /*No:RUN_FEATURE_6.fz_19*/
  425.  
  426.  
  427. T2 r348jvm_argument_offset(T348* C,T0* a1){
  428. T2 R=0;
  429. R=X52jvm_stack_space((C)->_current_type/*4*/);
  430. R=(R)+(r191jvm_offset_of((T191*)((C)->_arguments/*36*/),a1));
  431. return R;
  432. }
  433.  
  434.  
  435. void r348initialize(T348* C){
  436. C->_result_type=((T311*)((C)->_base_feature/*32*/))->_result_type/*56*/;
  437. C->_arguments=((T311*)((C)->_base_feature/*32*/))->_arguments/*24*/;
  438. /*[IF*/
  439. if(X52is_anchored((C)->_result_type/*40*/)){
  440. r348fe_vffd7(C);
  441. }
  442.  else if(X52is_formal_generic((C)->_result_type/*40*/)){
  443. r21add_position(X52start_position((C)->_result_type/*40*/));
  444. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms348_321828);
  445. r21fatal_error((T21*)(oBC12eh),b1);
  446. }/*]*/
  447. }
  448. /*FI]*/
  449. C->_result_type=X52to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  450. /*[IF*/
  451. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  452. /*[IF*/
  453. if(!(r191is_runnable((T191*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  454. {T191*n=malloc(sizeof(*n));
  455. *n=M191;
  456. r191with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  457. C->_arguments=(T0*)n;
  458. }
  459. }
  460. /*FI]*/
  461. }
  462. /*FI]*/
  463. C->_local_vars=((T311*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
  464. /*[IF*/
  465. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  466. C->_local_vars=r182to_runnable((T182*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
  467. }
  468. /*FI]*/
  469. C->_routine_body=((T311*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
  470. /*[IF*/
  471. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  472. C->_routine_body=r220to_runnable((T220*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
  473. }
  474. /*FI]*/
  475. /*[IF*/
  476. if(r76require_check((T76*)(oBC12run_control))){
  477. C->_require_assertion=r311run_require((T0*)C);
  478. }
  479. /*FI]*/
  480. /*[IF*/
  481. if(r76ensure_check((T76*)(oBC12run_control))){
  482. C->_ensure_assertion=r311run_ensure((T0*)C);
  483. }
  484. /*FI]*/
  485. C->_rescue_compound=((T311*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
  486. /*[IF*/
  487. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  488. /*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
  489. /*]*/
  490. C->_rescue_compound=r220to_runnable((T220*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
  491. }
  492. /*FI]*/
  493. r345add_function((T0*)C);
  494. }
  495. /*No:RUN_FEATURE_6.can_be_dropped*/
  496. /*No:RUN_FEATURE_6.require_assertion*/
  497. /*No:RUN_FEATURE_6.update_tmp_jvm_descriptor*/
  498.  
  499.  
  500. T2 r348jvm_max_locals(T348* C){
  501. T2 R=0;
  502. R=X52jvm_stack_space((C)->_current_type/*4*/);
  503. /*[IF*/
  504. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  505. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  506. }
  507. /*FI]*/
  508. /*[IF*/
  509. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  510. R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*44*/)));
  511. }
  512. /*FI]*/
  513. /*[IF*/
  514. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  515. R=(R)+(X52jvm_stack_space((C)->_result_type/*40*/));
  516. }
  517. /*FI]*/
  518. return R;
  519. }
  520. /*No:RUN_FEATURE_6.compute_use_current*/
  521.  
  522.  
  523. void r348method_info_start(T348* C){
  524. T2 _flags=0;
  525. _flags=X52jvm_method_flags((C)->_current_type/*4*/);
  526. r39start((T39*)(oBC12method_info),_flags,X50to_key((C)->_name/*16*/),r348jvm_descriptor(C));
  527. }
  528. /*No:RUN_FEATURE_6.local_vars*/
  529.  
  530.  
  531. T2 r348jvm_result_offset(T348* C){
  532. T2 R=0;
  533. R=X52jvm_stack_space((C)->_current_type/*4*/);
  534. /*[IF*/
  535. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  536. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  537. }
  538. /*FI]*/
  539. /*[IF*/
  540. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  541. R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*44*/)));
  542. }
  543. /*FI]*/
  544. return R;
  545. }
  546.  
  547.  
  548. void r348routine_update_tmp_jvm_descriptor(T348* C){
  549. T0* _rt=NULL;
  550. T0* _ct=NULL;
  551. r7extend((T7*)(oBC27tmp_jvm_descriptor),'\50');
  552. _ct=(C)->_current_type/*4*/;
  553. X52jvm_target_descriptor_in(_ct,oBC27tmp_jvm_descriptor);
  554. /*[IF*/
  555. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  556. r191jvm_descriptor_in((T191*)((C)->_arguments/*36*/),oBC27tmp_jvm_descriptor);
  557. }
  558. /*FI]*/
  559. _rt=(C)->_result_type/*40*/;
  560. /*[IF*/
  561. if((_rt)==((void*)(NULL))){
  562. r7append((T7*)(oBC27tmp_jvm_descriptor),((T0*)ms13_260));
  563. }
  564. else{
  565. _rt=X52run_type(_rt);
  566. r7extend((T7*)(oBC27tmp_jvm_descriptor),'\51');
  567. X52jvm_descriptor_in(_rt,oBC27tmp_jvm_descriptor);
  568. }
  569. /*FI]*/
  570. }
  571. /*No:RUN_FEATURE_6.jvm_field_or_method*/
  572.  
  573.  
  574. T0* r348jvm_descriptor(T348* C){
  575. T0* R=NULL;
  576. /*[IRF3.3clear*/((((T7*)((T7*)(oBC27tmp_jvm_descriptor))))->_count)=(0);
  577. /*]*/
  578. /*[IRF3.4update_tmp_jvm_descriptor*/r348routine_update_tmp_jvm_descriptor(C);
  579. /*]*/
  580. R=oBC27tmp_jvm_descriptor;
  581. return R;
  582. }
  583. /*No:TYPE_REAL.start_position*/
  584.  
  585.  
  586. void r275jvm_initialize_local(T2 a1){
  587. /*[IRF3.4opcode_fconst_0*/r28opcode((T28*)(oBC12code_attribute),11,1);
  588. /*]*/
  589. /*[IRF3.6jvm_write_local*/{T2 b1=a1;
  590. r28opcode_fstore((T28*)(oBC12code_attribute),b1);
  591. }/*]*/
  592. }
  593. int fBC275used_as_reference=0;
  594.  
  595.  
  596. void r275used_as_reference(void){
  597. if (fBC275used_as_reference==0){
  598. fBC275used_as_reference=1;
  599. r275load_ref(((T0*)ms14_7696));
  600. }}
  601. /*No:TYPE_REAL.is_user_expanded*/
  602. /*No:TYPE_REAL.id*/
  603. /*No:TYPE_REAL.is_pointer*/
  604. /*No:TYPE_REAL.jvm_check_class_invariant*/
  605.  
  606.  
  607. T0* r275to_runnable(T275* C,T0* a1){
  608. T0* R=NULL;
  609. R=(T0*)C;
  610. r275check_type(C);
  611. return R;
  612. }
  613. /*No:TYPE_REAL.us_real_ref*/
  614.  
  615.  
  616. T0* r275run_class(T275* C){
  617. T0* R=NULL;
  618. R=r22run_class((T0*)C);
  619. return R;
  620. }
  621. /*No:TYPE_REAL.us_item*/
  622. /*No:TYPE_REAL.is_like_current*/
  623. /*No:TYPE_REAL.is_bit*/
  624. /*No:TYPE_REAL.jvm_write_local*/
  625.  
  626.  
  627. T0* r275smallest_ancestor(T275* C,T0* a1){
  628. T0* R=NULL;
  629. T0* _rto=NULL;
  630. _rto=X52run_type(a1);
  631. /*[IF*/
  632. if(X52is_integer(_rto)){
  633. R=(T0*)C;
  634. }
  635.  else if(X52is_real(_rto)){
  636. R=(T0*)C;
  637. }
  638.  else if(X52is_double(_rto)){
  639. R=a1;
  640. }
  641. else{
  642. R=r277smallest_ancestor((T277*)(r275type_real_ref()),_rto);
  643. }
  644. /*FI]*/
  645. return R;
  646. }
  647.  
  648.  
  649. T0* r275run_time_mark(void){
  650. T0* R=NULL;
  651. R=((T0*)ms14_1208);
  652. return R;
  653. }
  654. /*No:TYPE_REAL.is_expanded*/
  655.  
  656.  
  657. T2 r275jvm_if_x_eq(void){
  658. T2 R=0;
  659. /*[IRF3.4opcode_fcmpg*/r28opcode((T28*)(oBC12code_attribute),150,-(1));
  660. /*]*/
  661. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  662. return R;
  663. }
  664. /*No:TYPE_REAL.jvm_xnewarray*/
  665. /*No:TYPE_REAL.jvm_push_local*/
  666. /*No:TYPE_REAL.fz_dot*/
  667. /*No:TYPE_REAL.is_like_feature*/
  668.  
  669.  
  670. T6 r275is_a(T275* C,T0* a1){
  671. T6 R=0;
  672. /*[IF*/
  673. if((X52is_real(a1))||(X52is_double(a1))){
  674. R=1;
  675. }
  676.  else if(r63is_subclass_of((T63*)(r275base_class(C)),X52base_class(a1))){
  677. R=1;
  678. r275used_as_reference();
  679. }
  680.  else if((X52run_time_mark(a1))==((void*)(((T0*)ms14_10890)))){
  681. R=1;
  682. ((/*UT*/(void)((T271*)(r275type_double()))),r271used_as_reference());
  683. }
  684. /*FI]*/
  685. /*[IF*/
  686. if(!(R)){
  687. r21add_type((T0*)C,((T0*)ms13_17730));
  688. r21add_type(a1,((T0*)ms13_47));
  689. }
  690. /*FI]*/
  691. return R;
  692. }
  693.  
  694.  
  695. T0* r275written_mark(void){
  696. T0* R=NULL;
  697. R=((T0*)ms14_1208);
  698. return R;
  699. }
  700. /*No:TYPE_REAL.is_character*/
  701.  
  702.  
  703. void r275error(T0* a1,T0* a2){
  704. r21add_position(a1);
  705. r21error((T21*)(oBC12eh),a2);
  706. }
  707.  
  708.  
  709. void r275make(T275* C,T0* a1){
  710. {T70*n=malloc(sizeof(*n));
  711. *n=M70;
  712. r70make(n,((T0*)ms14_1208),a1);
  713. C->_base_class_name=(T0*)n;
  714. }
  715. }
  716.  
  717.  
  718. T2 r275jvm_convert_to(T0* a1){
  719. T2 R=0;
  720. R=1;
  721. /*[IF*/
  722. if(X52is_reference(a1)){
  723. /*[IRF3.2jvm_to_reference*/{T0* _ca=NULL;
  724. T2 _idx=0;
  725. T0* _rc=NULL;
  726. _ca=oBC12code_attribute;
  727. _rc=r277run_class((T277*)(r275type_real_ref()));
  728. r23jvm_basic_new(((T23*)_rc));
  729. /*[IRF3.4opcode_dup_x1*/r28opcode(((T28*)_ca),90,1);
  730. /*]*/
  731. /*[IRF3.4opcode_swap*/r28opcode(((T28*)_ca),95,0);
  732. /*]*/
  733. _idx=r23jvm_constant_pool_index(((T23*)_rc));
  734. _idx=r29idx_fieldref4((T29*)(oBC12constant_pool),_idx,((T0*)ms14_1764),((T0*)ms13_71));
  735. r28opcode_putfield(((T28*)_ca),_idx,-(2));
  736. }/*]*/
  737. }
  738.  else if(X52is_double(a1)){
  739. /*[IRF3.4opcode_f2d*/r28opcode((T28*)(oBC12code_attribute),141,1);
  740. /*]*/
  741. R=2;
  742. }
  743.  else if(X52is_real(a1)){
  744. }
  745. else{
  746. /*[IRF3.4opcode_f2i*/r28opcode((T28*)(oBC12code_attribute),139,0);
  747. /*]*/
  748. }
  749. /*FI]*/
  750. return R;
  751. }
  752. /*No:TYPE_REAL.is_array*/
  753.  
  754.  
  755. void r275fatal_error_generic_list(T275* C){
  756. r21add_type((T0*)C,((T0*)ms52_29184));
  757. r21print_as_fatal_error((T21*)(oBC12eh));
  758. }
  759.  
  760.  
  761. T2 r275jvm_push_default(void){
  762. T2 R=0;
  763. /*[IRF3.4opcode_fconst_0*/r28opcode((T28*)(oBC12code_attribute),11,1);
  764. /*]*/
  765. R=1;
  766. return R;
  767. }
  768. /*No:TYPE_REAL.is_dummy_expanded*/
  769.  
  770.  
  771. T0* r275generic_list(T275* C){
  772. T0* R=NULL;
  773. r275fatal_error_generic_list(C);
  774. return R;
  775. }
  776.  
  777.  
  778. T0* r275base_class(T275* C){
  779. T0* R=NULL;
  780. T0* _bcn=NULL;
  781. _bcn=(C)->_base_class_name/*4*/;
  782. /*[IF*/
  783. if((_bcn)!=((void*)(NULL))){
  784. R=r70base_class(((T70*)_bcn));
  785. }
  786. else{
  787. /*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
  788. r7append((T7*)(oBC21explanation),b1);
  789. }/*]*/
  790. r21add_type((T0*)C,((T0*)ms13_47));
  791. r21print_as_fatal_error((T21*)(oBC12eh));
  792. }
  793. /*FI]*/
  794. return R;
  795. }
  796.  
  797.  
  798. T2 r275jvm_if_x_ne(void){
  799. T2 R=0;
  800. /*[IRF3.4opcode_fcmpg*/r28opcode((T28*)(oBC12code_attribute),150,-(1));
  801. /*]*/
  802. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  803. return R;
  804. }
  805. /*No:TYPE_REAL.base_class_name*/
  806. /*No:TYPE_REAL.jvm_standard_is_equal*/
  807. /*No:TYPE_REAL.is_formal_generic*/
  808.  
  809.  
  810. T6 r275is_a_in(T275* C,T0* a1,T0* a2){
  811. T6 R=0;
  812. T0* _ct=NULL;
  813. T0* _t2=NULL;
  814. T0* _t1=NULL;
  815. /*[IF*/
  816. if((r275written_mark())==((void*)(X52written_mark(a1)))){
  817. R=1;
  818. }
  819. else{
  820. _ct=(((T23*)a2))->_current_type/*0*/;
  821. _t1=r275to_runnable(C,_ct);
  822. _t2=X52to_runnable(a1,_ct);
  823. /*[IF*/
  824. if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
  825. R=1;
  826. }
  827. else{
  828. R=X52is_a(_t1,_t2);
  829. }
  830. /*FI]*/
  831. }
  832. /*FI]*/
  833. return R;
  834. }
  835.  
  836.  
  837. T0* r275look_up_for(T275* C,T0* a1,T0* a2){
  838. T0* R=NULL;
  839. R=r63look_up_for((T63*)(r275base_class(C)),a1,a2);
  840. return R;
  841. }
  842. /*No:TYPE_REAL.us_double_ref*/
  843. /*No:TYPE_REAL.jvm_to_reference*/
  844. /*No:TYPE_REAL.run_type*/
  845.  
  846.  
  847. T6 r275has_creation(T275* C,T0* a1){
  848. T6 R=0;
  849. r21add_position(X50start_position(a1));
  850. r275error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms269_100044));
  851. return R;
  852. }
  853. /*No:TYPE_REAL.expanded_initializer*/
  854. /*No:TYPE_REAL.jvm_method_flags*/
  855. /*No:TYPE_REAL.is_boolean*/
  856. /*No:TYPE_REAL.is_generic*/
  857. /*No:TYPE_REAL.jvm_xaload*/
  858. /*No:TYPE_REAL.is_real*/
  859. /*No:TYPE_REAL.is_any*/
  860. /*No:TYPE_REAL.nb_errors*/
  861. /*No:TYPE_REAL.fz_78*/
  862. /*No:TYPE_REAL.is_basic_eiffel_expanded*/
  863. /*No:TYPE_REAL.jvm_descriptor_in*/
  864. int fBC12type_real_ref=0;
  865. T0*oBC12type_real_ref=NULL;
  866.  
  867.  
  868. T0* r275type_real_ref(void){
  869. if(fBC12type_real_ref==0){
  870. T0* _real_ref=NULL;
  871. fBC12type_real_ref=1;
  872. {T70*n=malloc(sizeof(*n));
  873. *n=M70;
  874. r70make(n,((T0*)ms14_7696),NULL);
  875. _real_ref=(T0*)n;
  876. }
  877. {T277*n=malloc(sizeof(*n));
  878. *n=M277;
  879. /*[IRF3.3make*/((((T277*)(n)))->_base_class_name)=(_real_ref);
  880. /*]*/
  881. oBC12type_real_ref=(T0*)n;
  882. }
  883. }
  884. return oBC12type_real_ref;}
  885. int fBC12type_double=0;
  886. T0*oBC12type_double=NULL;
  887.  
  888.  
  889. T0* r275type_double(void){
  890. if(fBC12type_double==0){
  891. fBC12type_double=1;
  892. {T271*n=malloc(sizeof(*n));
  893. *n=M271;
  894. r271make(n,NULL);
  895. oBC12type_double=(T0*)n;
  896. }
  897. }
  898. return oBC12type_double;}
  899. /*No:TYPE_REAL.is_string*/
  900.  
  901.  
  902. T6 r275is_native_array(T275* C){
  903. T6 R=0;
  904. T0* _tna=NULL;
  905. _tna=(T0*)C;
  906. if(NULL!=(_tna))switch(((T0*)_tna)->id) {
  907. case 267: 
  908. break;
  909. default:
  910. _tna=NULL;
  911. };R=(_tna)!=((void*)(NULL));
  912. return R;
  913. }
  914. /*No:TYPE_REAL.is_integer*/
  915. /*No:TYPE_REAL.is_anchored*/
  916. /*No:TYPE_REAL.is_run_type*/
  917. /*No:TYPE_REAL.is_reference*/
  918. /*No:TYPE_REAL.is_none*/
  919. /*No:TYPE_REAL.us_real*/
  920. /*No:TYPE_REAL.jvm_return_code*/
  921. /*No:TYPE_REAL.jvm_target_descriptor_in*/
  922. /*No:TYPE_REAL.fz_inako*/
  923. /*No:TYPE_REAL.jvm_xastore*/
  924. /*No:TYPE_REAL.is_like_argument*/
  925.  
  926.  
  927. void r275load_ref(T0* a1){
  928. T0* _rf=NULL;
  929. T0* _rc=NULL;
  930. T0* _cn=NULL;
  931. {T70*n=malloc(sizeof(*n));
  932. *n=M70;
  933. r70make(n,a1,NULL);
  934. _cn=(T0*)n;
  935. }
  936. _rc=r63run_class((T63*)(r70base_class(((T70*)_cn))));
  937. r23set_at_run_time(((T23*)_rc));
  938. _rf=r23get_feature_with(((T23*)_rc),((T0*)ms14_1764));
  939. }
  940. int fBC275check_type=0;
  941.  
  942.  
  943. void r275check_type(T275* C){
  944. if (fBC275check_type==0){
  945. T0* _rc=NULL;
  946. T0* _bc=NULL;
  947. fBC275check_type=1;
  948. _bc=r275base_class(C);
  949. /*[IF*/
  950. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  951. _rc=r275run_class(C);
  952. }
  953. /*FI]*/
  954. /*[IF*/
  955. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  956. /*[IF*/
  957. if(!((((T63*)_bc))->_is_expanded/*20*/)){
  958. r275error(/*(IRF4.6start_position*/(((T70*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms275_29722));
  959. }
  960. /*FI]*/
  961. }
  962. /*FI]*/
  963. }}
  964.  
  965.  
  966. T2 r275jvm_stack_space(void){
  967. T2 R=0;
  968. /*[IF*/
  969. /*AF*//*AE*/
  970. R=1;
  971. /*FI]*/
  972. return R;
  973. }
  974. /*No:TYPE_REAL.is_double*/
  975.  
  976.  
  977. T2 r275jvm_expanded_from_reference(T0* a1){
  978. T2 R=0;
  979. T0* _ca=NULL;
  980. T2 _idx=0;
  981. T0* _rc=NULL;
  982. _ca=oBC12code_attribute;
  983. _rc=r277run_class((T277*)(r275type_real_ref()));
  984. r23opcode_checkcast(((T23*)_rc));
  985. _idx=r23jvm_constant_pool_index(((T23*)_rc));
  986. _idx=r29idx_fieldref4((T29*)(oBC12constant_pool),_idx,((T0*)ms14_1764),((T0*)ms13_71));
  987. r28opcode_getfield(((T28*)_ca),_idx,0);
  988. R=1;
  989. return R;
  990. }
  991. /*No:FEATURE_CLAUSE_LIST.add_last*/
  992.  
  993.  
  994. void r97get_started(T97* C,T0* a1){
  995. T2 _i=0;
  996. _i=1;
  997. while (!((_i)>(((T99*)((C)->_list/*0*/))->_upper/*8*/))) {
  998. r98add_into((T98*)(r99item((T99*)((C)->_list/*0*/),_i)),a1);
  999. _i=(_i)+(1);
  1000. }
  1001. }
  1002. /*No:FEATURE_CLAUSE_LIST.make*/
  1003. /*No:FEATURE_CLAUSE_LIST.list*/
  1004. /*No:FORMAL_GENERIC_LIST.start_position*/
  1005. /*No:FORMAL_GENERIC_LIST.item*/
  1006. /*No:FORMAL_GENERIC_LIST.count*/
  1007.  
  1008.  
  1009. void r96make(T96* C,T0* a1,T0* a2){
  1010. T0* _fga=NULL;
  1011. T2 _i=0;
  1012. T2 _rank=0;
  1013. C->_start_position=a1;
  1014. C->_list=a2;
  1015. _i=(((T284*)a2))->_upper/*8*/;
  1016. while (!((_i)==(0))) {
  1017. _fga=r284item(((T284*)a2),_i);
  1018. _rank=r96index_of(C,(((T283*)_fga))->_name/*0*/);
  1019. /*[IF*/
  1020. if((_rank)!=(_i)){
  1021. r21add_position(/*(IRF4.6start_position*/(((T70*)(((T283*)(r284item(((T284*)a2),_rank)))->_name/*0*/)))->_start_position/*4*//*)*/);
  1022. r21add_position(/*(IRF4.6start_position*/(((T70*)((((T283*)_fga))->_name/*0*/)))->_start_position/*4*//*)*/);
  1023. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms96_178923);
  1024. r21fatal_error((T21*)(oBC12eh),b1);
  1025. }/*]*/
  1026. }
  1027. /*FI]*/
  1028. _i=(_i)-(1);
  1029. }
  1030. }
  1031.  
  1032.  
  1033. T2 r96index_of(T96* C,T0* a1){
  1034. T2 R=0;
  1035. T0* _to_string=NULL;
  1036. _to_string=(((T70*)a1))->_to_string/*0*/;
  1037. R=((T284*)((C)->_list/*4*/))->_upper/*8*/;
  1038. while (!(((R)==(0))||((_to_string)==((void*)(((T70*)(((T283*)(r284item((T284*)((C)->_list/*4*/),R)))->_name/*0*/))->_to_string/*0*/))))) {
  1039. R=(R)-(1);
  1040. }
  1041. return R;
  1042. }
  1043. /*No:FORMAL_GENERIC_LIST.list*/
  1044. /*No:FORMAL_GENERIC_LIST.fatal_error*/
  1045. /*No:CST_ATT_BIT.base_class*/
  1046. /*No:CST_ATT_BIT.value_mem*/
  1047.  
  1048.  
  1049. T0* r214start_position(T214* C){
  1050. T0* R=NULL;
  1051. R=X50start_position(/*(IRF4.6first_name*/r87item(((T87*)((C)->_names/*8*/)),1)/*)*/);
  1052. return R;
  1053. }
  1054.  
  1055.  
  1056. T6 r214is_merge_with(T214* C,T0* a1,T0* a2){
  1057. T6 R=0;
  1058. R=1;
  1059. /*[IF*/
  1060. if(((C)->_result_type/*20*/)!=((void*)(X95result_type(a1)))){
  1061. /*[IF*/
  1062. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  1063. R=0;
  1064. }
  1065. /*FI]*/
  1066. }
  1067. /*FI]*/
  1068. /*[IF*/
  1069. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X95arguments(a1)))){
  1070. /*[IF*/
  1071. {/*AT*/R=0;
  1072. }
  1073. /*FI]*/
  1074. }
  1075. /*FI]*/
  1076. /*[IF*/
  1077. if(R){
  1078. /*[IF*/
  1079. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1080. R=X52is_a_in((C)->_result_type/*20*/,X95result_type(a1),a2);
  1081. }
  1082. /*FI]*/
  1083. /*[IF*/
  1084. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1085. R=r191is_a_in((T191*)(/*(IRF4.1arguments*/NULL/*)*/),X95arguments(a1),a2);
  1086. }
  1087. /*FI]*/
  1088. /*[IF*/
  1089. if(!(R)){
  1090. R=1;
  1091. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1092. /*]*/
  1093. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  1094. /*]*/
  1095. /*]*/
  1096. /*[IF*/
  1097. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1098. R=X52is_a_in(X95result_type(a1),(C)->_result_type/*20*/,a2);
  1099. }
  1100. /*FI]*/
  1101. /*[IF*/
  1102. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1103. R=r191is_a_in((T191*)(X95arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  1104. }
  1105. /*FI]*/
  1106. }
  1107. /*FI]*/
  1108. }
  1109. /*FI]*/
  1110. /*[IF*/
  1111. if(R){
  1112. r214merge_header_comments(C,a1);
  1113. }
  1114. /*FI]*/
  1115. return R;
  1116. }
  1117. /*No:CST_ATT_BIT.first_name*/
  1118. /*No:CST_ATT_BIT.em1*/
  1119. /*No:CST_ATT_BIT.header_comment*/
  1120. /*No:CST_ATT_BIT.names*/
  1121. /*No:CST_ATT_BIT.result_type*/
  1122. /*No:CST_ATT_BIT.code_require*/
  1123. /*No:CST_ATT_BIT.make_e_feature*/
  1124.  
  1125.  
  1126. void r214add_into(T214* C,T0* a1){
  1127. T0* _fn=NULL;
  1128. T2 _i=0;
  1129. C->_base_class=r59base_class((T59*)(X50start_position(r87item((T87*)((C)->_names/*8*/),1))));
  1130. _i=1;
  1131. while (!((_i)>(r87count((T87*)((C)->_names/*8*/))))) {
  1132. _fn=r87item((T87*)((C)->_names/*8*/),_i);
  1133. /*[IF*/
  1134. if(r94has(((T94*)a1),X50to_key(_fn))){
  1135. _fn=/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)(((T203*)(r94at(((T94*)a1),X50to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1136. r21add_position(X50start_position(_fn));
  1137. r21add_position(X50start_position(r87item((T87*)((C)->_names/*8*/),_i)));
  1138. r21error((T21*)(oBC12eh),((T0*)ms95_41905));
  1139. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  1140. r7append((T7*)(oBC21explanation),b1);
  1141. }/*]*/
  1142. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1143. }
  1144. else{
  1145. r94put(((T94*)a1),(T0*)C,X50to_key(_fn));
  1146. }
  1147. /*FI]*/
  1148. _i=(_i)+(1);
  1149. }
  1150. }
  1151.  
  1152.  
  1153. T6 r214can_hide(T214* C,T0* a1,T0* a2){
  1154. T6 R=0;
  1155. /*[IF*/
  1156. if(((C)->_result_type/*20*/)!=((void*)(X95result_type(a1)))){
  1157. /*[IF*/
  1158. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  1159. r21add_position(X95start_position(a1));
  1160. r214error(r214start_position(C),((T0*)ms95_64647));
  1161. }
  1162. /*FI]*/
  1163. }
  1164. /*FI]*/
  1165. /*[IF*/
  1166. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X95arguments(a1)))){
  1167. /*[IF*/
  1168. {/*AT*/r21add_position(X95start_position(a1));
  1169. r214error(r214start_position(C),((T0*)ms95_83182));
  1170. }
  1171. /*FI]*/
  1172. }
  1173. /*FI]*/
  1174. /*[IF*/
  1175. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1176. /*[IF*/
  1177. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1178. /*[IF*/
  1179. if(!(X52is_a_in((C)->_result_type/*20*/,X95result_type(a1),a2))){
  1180. /*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
  1181. r7append((T7*)(oBC21explanation),b1);
  1182. }/*]*/
  1183. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  1184. r7append((T7*)(oBC21explanation),b1);
  1185. }/*]*/
  1186. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1187. }
  1188. /*FI]*/
  1189. }
  1190. /*FI]*/
  1191. }
  1192. /*FI]*/
  1193. /*[IF*/
  1194. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1195. /*[IF*/
  1196. /*AF*//*AE*/
  1197. /*FI]*/
  1198. }
  1199. /*FI]*/
  1200. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  1201. /*[IF*/
  1202. if(R){
  1203. r214merge_header_comments(C,a1);
  1204. }
  1205. /*FI]*/
  1206. return R;
  1207. }
  1208. /*No:CST_ATT_BIT.ensure_assertion*/
  1209.  
  1210.  
  1211. T0* r214try_to_undefine(T214* C,T0* a1,T0* a2){
  1212. T0* R=NULL;
  1213. T0* _fn2=NULL;
  1214. r21add_position(X50start_position(a1));
  1215. _fn2=r87feature_name((T87*)((C)->_names/*8*/),X50to_key(a1));
  1216. /*[IF*/
  1217. if((_fn2)!=((void*)(NULL))){
  1218. X50undefine_in(_fn2,a2);
  1219. }
  1220. /*FI]*/
  1221. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1222. /*]*/
  1223. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  1224. /*]*/
  1225. /*]*/
  1226. R=r214try_to_undefine_aux(C,a1,a2);
  1227. /*[IF*/
  1228. if((R)!=((void*)(NULL))){
  1229. /*X289set_clients*//*[IRF3.3set_clients*/((((T292*)(((T292*)R))))->_clients)=((C)->_clients/*16*/);
  1230. /*]*/
  1231. r214merge_header_comments(C,R);
  1232. }
  1233. else{
  1234. r63fatal_undefine(((T63*)a2),a1);
  1235. }
  1236. /*FI]*/
  1237. return R;
  1238. }
  1239. /*No:CST_ATT_BIT.is_deferred*/
  1240. /*No:CST_ATT_BIT.set_clients*/
  1241. /*No:CST_ATT_BIT.value*/
  1242. /*No:CST_ATT_BIT.nb_errors*/
  1243.  
  1244.  
  1245. T0* r214to_run_feature(T214* C,T0* a1,T0* a2){
  1246. T0* R=NULL;
  1247. T0* _rc=NULL;
  1248. _rc=X52run_class(a1);
  1249. R=r23at(((T23*)_rc),a2);
  1250. if(NULL!=(R))switch(((T0*)R)->id) {
  1251. case 372: 
  1252. break;
  1253. default:
  1254. R=NULL;
  1255. };/*[IF*/
  1256. if((R)==((void*)(NULL))){
  1257. {T372*n=malloc(sizeof(*n));
  1258. *n=M372;
  1259. r372make(n,a1,a2,(T0*)C);
  1260. R=(T0*)n;
  1261. }
  1262. }
  1263. /*FI]*/
  1264. return R;
  1265. }
  1266.  
  1267.  
  1268. void r214merge_header_comments(T214* C,T0* a1){
  1269. /*[IF*/
  1270. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  1271. /*[IF*/
  1272. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1273. C->_header_comment=/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/);
  1274. }
  1275.  else if((/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1276. X95set_header_comment(a1,(C)->_header_comment/*12*/);
  1277. }
  1278. /*FI]*/
  1279. }
  1280. /*FI]*/
  1281. }
  1282. /*No:CST_ATT_BIT.arguments*/
  1283. /*No:CST_ATT_BIT.require_assertion*/
  1284.  
  1285.  
  1286. T0* r214try_to_undefine_aux(T214* C,T0* a1,T0* a2){
  1287. T0* R=NULL;
  1288. r21add_position(r214start_position(C));
  1289. r214error(X50start_position(a1),((T0*)ms205_99414));
  1290. r63fatal_undefine(((T63*)a2),a1);
  1291. return R;
  1292. }
  1293. /*No:CST_ATT_BIT.fz_dot*/
  1294.  
  1295.  
  1296. void r214error(T0* a1,T0* a2){
  1297. r21add_position(a1);
  1298. r21error((T21*)(oBC12eh),a2);
  1299. }
  1300.  
  1301.  
  1302. void r214make(T214* C,T0* a1,T0* a2,T0* a3){
  1303. /*[IRF3.3make_e_feature*/((((T214*)(C)))->_names)=(a1);
  1304. /*]*/
  1305. C->_result_type=a2;
  1306. C->_value_mem=a3;
  1307. }
  1308.  
  1309.  
  1310. void r214collect_for(T2 a1){
  1311. T0* _er=NULL;
  1312. /*[IF*/
  1313. if((a1)==(1)){
  1314. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  1315. /*[IF*/
  1316. if((_er)!=((void*)(NULL))){
  1317. /*[IF*/
  1318. if(!(r365fast_has((T365*)(oBC95require_collector),_er))){
  1319. r365add_last((T365*)(oBC95require_collector),_er);
  1320. }
  1321. /*FI]*/
  1322. }
  1323. /*FI]*/
  1324. }
  1325. else{
  1326. /*[IF*/
  1327. /*AF*//*AE*/
  1328. /*FI]*/
  1329. }
  1330. /*FI]*/
  1331. }
  1332. /*No:CST_ATT_BIT.set_header_comment*/
  1333. /*No:CST_ATT_BIT.clients*/
  1334.  
  1335.  
  1336. void r40write_bytes(T40* C){
  1337. r31print_count((T31*)(oBC12echo),((T0*)ms40_2655),(C)->_count/*0*/);
  1338. r24b_put_u2((T24*)(oBC12jvm),(C)->_count/*0*/);
  1339. r24b_put_byte_string((T24*)(oBC12jvm),oBC40storage);
  1340. }
  1341.  
  1342.  
  1343. void r40append_u2(T0* a1,T2 a2){
  1344. /*[IRF3.6append_u1*/{T0* b1=a1;
  1345. T2 b2=(a2)/(256);
  1346. r7extend(((T7*)b1),((T3)(b2)));
  1347. }/*]*/
  1348. /*[IRF3.6append_u1*/{T0* b1=a1;
  1349. T2 b2=(a2)%(256);
  1350. r7extend(((T7*)b1),((T3)(b2)));
  1351. }/*]*/
  1352. }
  1353.  
  1354.  
  1355. void r40add(T40* C,T2 a1,T2 a2,T2 a3){
  1356. C->_count=((C)->_count/*0*/)+(1);
  1357. r40append_u2(oBC40storage,a1);
  1358. r40append_u2(oBC40storage,a2);
  1359. r40append_u2(oBC40storage,a3);
  1360. r40append_u2(oBC40storage,0);
  1361. }
  1362. /*No:FIELD_INFO.count*/
  1363. /*No:FIELD_INFO.append_u1*/
  1364.  
  1365.  
  1366. void r40clear(T40* C){
  1367. C->_count=0;
  1368. /*[IRF3.3clear*/((((T7*)((T7*)(oBC40storage))))->_count)=(0);
  1369. /*]*/
  1370. }
  1371. T0*oBC40storage=NULL;
  1372. /*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_define_function*/
  1373. /*No:NATIVE_INLINE_WITHOUT_CURRENT.us_fclose*/
  1374.  
  1375.  
  1376. void r302fe_c2jvm(T0* a1){
  1377. r21add_position(r24target_position((T24*)(oBC12jvm)));
  1378. r21add_position(X27start_position(a1));
  1379. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms293_140400);
  1380. r21fatal_error((T21*)(oBC12eh),b1);
  1381. }/*]*/
  1382. }
  1383. /*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_add_method_for_function*/
  1384. /*No:NATIVE_INLINE_WITHOUT_CURRENT.us_free*/
  1385. /*No:NATIVE_INLINE_WITHOUT_CURRENT.use_current*/
  1386. /*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_mapping_function*/
  1387. /*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_add_method_for_procedure*/
  1388.  
  1389.  
  1390. void r302jvm_mapping_procedure(T0* a1,T0* a2,T0* a3){
  1391. /*[IF*/
  1392. if((((T0*)ms14_6936))==((void*)(a3))){
  1393. r24drop_ith_argument((T24*)(oBC12jvm),1);
  1394. }
  1395.  else if(((((T0*)ms14_5598))==((void*)(a2)))&&((((T0*)ms14_1712))==((void*)(a3)))){
  1396. r24drop_ith_argument((T24*)(oBC12jvm),1);
  1397. }
  1398. else{
  1399. r302fe_c2jvm(a1);
  1400. }
  1401. /*FI]*/
  1402. }
  1403. /*No:NATIVE_INLINE_WITHOUT_CURRENT.us_memory*/
  1404. /*No:NATIVE_INLINE_WITHOUT_CURRENT.jvm_define_procedure*/
  1405. /*No:NATIVE_INLINE_WITHOUT_CURRENT.fatal_error*/
  1406. T0*oBC367sucess=NULL;
  1407.  
  1408.  
  1409. T6 r367use_current(T367* C){
  1410. T6 R=0;
  1411. T2 _i=0;
  1412. _i=1;
  1413. while (!((R)||((_i)>(((T365*)((C)->_list/*0*/))->_upper/*8*/)))) {
  1414. R=r291use_current((T291*)(r365item((T365*)((C)->_list/*0*/),_i)));
  1415. _i=(_i)+(1);
  1416. }
  1417. return R;
  1418. }
  1419.  
  1420.  
  1421. void r367clear_run_feature(T367* C){
  1422. T2 _i=0;
  1423. _i=((T365*)((C)->_list/*0*/))->_upper/*8*/;
  1424. while (!((_i)==(0))) {
  1425. /*[IRF3.3clear_run_feature*/((((T291*)((T291*)(r365item((T365*)((C)->_list/*0*/),_i)))))->_run_feature)=(NULL);
  1426. /*]*/
  1427. _i=(_i)-(1);
  1428. }
  1429. }
  1430. /*No:RUN_REQUIRE.make*/
  1431.  
  1432.  
  1433. void r367compile_to_jvm(T367* C){
  1434. T0* _ca=NULL;
  1435. T2 _i=0;
  1436. /*[IF*/
  1437. if(r76require_check((T76*)(oBC12run_control))){
  1438. _ca=oBC12code_attribute;
  1439. /*[IF*/
  1440. if((((T365*)((C)->_list/*0*/))->_upper/*8*/)==(1)){
  1441. r291compile_to_jvm((T291*)(r365first((T365*)((C)->_list/*0*/))),1);
  1442. /*[IRF3.4opcode_pop*/r28opcode(((T28*)_ca),87,-(1));
  1443. /*]*/
  1444. }
  1445. else{
  1446. /*[IRF3.3clear*/((((T48*)((T48*)(oBC367sucess))))->_upper)=(-(1));
  1447. /*]*/
  1448. _i=1;
  1449. while (!((_i)>((((T365*)((C)->_list/*0*/))->_upper/*8*/)-(1)))) {
  1450. r291compile_to_jvm((T291*)(r365item((T365*)((C)->_list/*0*/),_i)),0);
  1451. r48add_last((T48*)(oBC367sucess),r28opcode_ifne(((T28*)_ca)));
  1452. _i=(_i)+(1);
  1453. }
  1454. r291compile_to_jvm((T291*)(r365item((T365*)((C)->_list/*0*/),_i)),1);
  1455. /*[IRF3.4opcode_pop*/r28opcode(((T28*)_ca),87,-(1));
  1456. /*]*/
  1457. r28resolve_with(oBC367sucess);
  1458. }
  1459. /*FI]*/
  1460. }
  1461. /*FI]*/
  1462. }
  1463.  
  1464.  
  1465. void r367afd_check(T367* C){
  1466. T2 _i=0;
  1467. _i=((T365*)((C)->_list/*0*/))->_upper/*8*/;
  1468. while (!((_i)==(0))) {
  1469. r291afd_check((T291*)(r365item((T365*)((C)->_list/*0*/),_i)));
  1470. _i=(_i)-(1);
  1471. }
  1472. }
  1473. /*No:RUN_REQUIRE.list*/
  1474. /*No:CALL_INFIX_DIV.static_value*/
  1475. /*No:CALL_INFIX_DIV.feature_name*/
  1476. /*No:CALL_INFIX_DIV.is_static*/
  1477. /*No:CALL_INFIX_DIV.is_manifest_string*/
  1478.  
  1479.  
  1480. T0* r136start_position(T136* C){
  1481. T0* R=NULL;
  1482. R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  1483. return R;
  1484. }
  1485.  
  1486.  
  1487. T0* r136add_comment(T136* C,T0* a1){
  1488. T0* R=NULL;
  1489. /*[IF*/
  1490. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  1491. R=(T0*)C;
  1492. }
  1493. else{
  1494. {T234*n=malloc(sizeof(*n));
  1495. *n=M234;
  1496. r234make(n,(T0*)C,a1);
  1497. R=(T0*)n;
  1498. }
  1499. }
  1500. /*FI]*/
  1501. return R;
  1502. }
  1503.  
  1504.  
  1505. T2 r136to_integer(T136* C){
  1506. T2 R=0;
  1507. r136error(r136start_position(C),((T0*)ms13_45846));
  1508. return R;
  1509. }
  1510.  
  1511.  
  1512. T6 r136use_current(T136* C){
  1513. T6 R=0;
  1514. /*[IF*/
  1515. {/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
  1516. }
  1517. /*FI]*/
  1518. /*[IF*/
  1519. if(R){
  1520. }
  1521.  else if(X109is_current((C)->_target/*4*/)){
  1522. R=X27use_current((C)->_run_feature/*16*/);
  1523. }
  1524. else{
  1525. R=X109use_current((C)->_target/*4*/);
  1526. }
  1527. /*FI]*/
  1528. return R;
  1529. }
  1530. /*No:CALL_INFIX_DIV.jvm_branch_if_true*/
  1531.  
  1532.  
  1533. T0* r136to_runnable(T136* C,T0* a1){
  1534. T0* R=NULL;
  1535. T0* _rf=NULL;
  1536. T0* _tbee=NULL;
  1537. T0* _at=NULL;
  1538. T0* _tt=NULL;
  1539. T0* _a=NULL;
  1540. T0* _t=NULL;
  1541. _t=r136runnable_expression((C)->_target/*4*/,a1);
  1542. _a=r136runnable_args((C)->_arguments/*8*/,a1);
  1543. _tt=X109result_type(_t);
  1544. _at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1545. /*[IF*/
  1546. {/*AT*//*[IF*/
  1547. if(X52is_real(_at)){
  1548. /*[IF*/
  1549. if(X52is_integer(_tt)){
  1550. _tbee=X52run_type(_at);
  1551. if(NULL!=(_tbee))switch(((T0*)_tbee)->id) {
  1552. case 274: case 272: case 270: case 271: case 275: case 268: 
  1553. break;
  1554. default:
  1555. _tbee=NULL;
  1556. };{T379*n=malloc(sizeof(*n));
  1557. *n=M379;
  1558. r379make(n,_t,_tbee);
  1559. _t=(T0*)n;
  1560. }
  1561. }
  1562. /*FI]*/
  1563. }
  1564.  else if(X52is_double(_at)){
  1565. /*[IF*/
  1566. if((X52is_integer(_tt))||(X52is_real(_tt))){
  1567. _tbee=X52run_type(_at);
  1568. if(NULL!=(_tbee))switch(((T0*)_tbee)->id) {
  1569. case 274: case 272: case 270: case 271: case 275: case 268: 
  1570. break;
  1571. default:
  1572. _tbee=NULL;
  1573. };{T379*n=malloc(sizeof(*n));
  1574. *n=M379;
  1575. r379make(n,_t,_tbee);
  1576. _t=(T0*)n;
  1577. }
  1578. }
  1579. /*FI]*/
  1580. }
  1581. /*FI]*/
  1582. }
  1583. /*FI]*/
  1584. _rf=r136run_feature_for(C,_t,a1);
  1585. /*[IF*/
  1586. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  1587. C->_target=_t;
  1588. C->_arguments=_a;
  1589. C->_run_feature=_rf;
  1590. r136run_feature_match(C,a1);
  1591. R=(T0*)C;
  1592. }
  1593.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  1594. R=(T0*)C;
  1595. }
  1596. else{
  1597. {T136*n=malloc(sizeof(*n));
  1598. *n=M136;
  1599. r136with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  1600. R=(T0*)n;
  1601. }
  1602. }
  1603. /*FI]*/
  1604. return R;
  1605. }
  1606. /*No:CALL_INFIX_DIV.us_slash*/
  1607.  
  1608.  
  1609. T2 r136compile_to_jvm_into(T136* C,T0* a1){
  1610. T2 R=0;
  1611. R=r136standard_compile_to_jvm_into(C,a1);
  1612. return R;
  1613. }
  1614. /*No:CALL_INFIX_DIV.is_pre_computable*/
  1615. /*No:CALL_INFIX_DIV.fz_bad_argument*/
  1616. /*No:CALL_INFIX_DIV.fz_iinaiv*/
  1617.  
  1618.  
  1619. T0* r136result_type(T136* C){
  1620. T0* R=NULL;
  1621. T0* _tla=NULL;
  1622. R=X27result_type((C)->_run_feature/*16*/);
  1623. /*[IF*/
  1624. if(X52is_like_current(R)){
  1625. R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  1626. }
  1627. else{
  1628. _tla=R;
  1629. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1630. case 262: 
  1631. break;
  1632. default:
  1633. _tla=NULL;
  1634. };/*[IF*/
  1635. if((_tla)!=((void*)(NULL))){
  1636. R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  1637. }
  1638. /*FI]*/
  1639. }
  1640. /*FI]*/
  1641. return R;
  1642. }
  1643. /*No:CALL_INFIX_DIV.static_value_mem*/
  1644. /*No:CALL_INFIX_DIV.run_feature*/
  1645.  
  1646.  
  1647. T0* r136runnable_args(T0* a1,T0* a2){
  1648. T0* R=NULL;
  1649. R=r152to_runnable(((T152*)a1),a2);
  1650. /*[IF*/
  1651. if((R)==((void*)(NULL))){
  1652. r21add_position(r152start_position(((T152*)a1)));
  1653. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  1654. r21fatal_error((T21*)(oBC12eh),b1);
  1655. }/*]*/
  1656. }
  1657. /*FI]*/
  1658. return R;
  1659. }
  1660.  
  1661.  
  1662. void r136standard_compile_target_to_jvm(T136* C){
  1663. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T136* C1=C;
  1664. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1665. }/*]*/
  1666. /*]*/
  1667. X52jvm_check_class_invariant(r136result_type(C));
  1668. }
  1669. /*No:CALL_INFIX_DIV.compile_to_jvm_assignment*/
  1670. /*No:CALL_INFIX_DIV.fz_07*/
  1671.  
  1672.  
  1673. void r136compile_to_jvm_old(T136* C){
  1674. X109compile_to_jvm_old((C)->_target/*4*/);
  1675. /*[IF*/
  1676. {/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
  1677. }
  1678. /*FI]*/
  1679. }
  1680. /*No:CALL_INFIX_DIV.jvm_assign*/
  1681. /*No:CALL_INFIX_DIV.jvm_branch_if_false*/
  1682. /*No:CALL_INFIX_DIV.compile_to_jvm*/
  1683. /*No:CALL_INFIX_DIV.arg_count*/
  1684.  
  1685.  
  1686. void r136with(T136* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1687. C->_target=a1;
  1688. C->_feature_name=a2;
  1689. C->_arguments=a3;
  1690. C->_run_feature=a4;
  1691. r136run_feature_match(C,a5);
  1692. }
  1693. /*No:CALL_INFIX_DIV.call_proc_call_c2jvm*/
  1694. /*No:CALL_INFIX_DIV.is_result*/
  1695. /*No:CALL_INFIX_DIV.fatal_error*/
  1696.  
  1697.  
  1698. void r136run_feature_match(T136* C,T0* a1){
  1699. r136run_feature_has_result(C);
  1700. r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  1701. }
  1702. /*No:CALL_INFIX_DIV.arguments*/
  1703.  
  1704.  
  1705. T0* r136runnable_expression(T0* a1,T0* a2){
  1706. T0* R=NULL;
  1707. R=X109to_runnable(a1,a2);
  1708. /*[IF*/
  1709. if((R)==((void*)(NULL))){
  1710. r21add_position(X109start_position(a1));
  1711. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
  1712. r21fatal_error((T21*)(oBC12eh),b1);
  1713. }/*]*/
  1714. }
  1715. /*FI]*/
  1716. return R;
  1717. }
  1718. /*No:CALL_INFIX_DIV.can_be_dropped*/
  1719. /*No:CALL_INFIX_DIV.implicit_cast*/
  1720. /*No:CALL_INFIX_DIV.compile_target_to_jvm*/
  1721. /*No:CALL_INFIX_DIV.isa_dca_inline_argument*/
  1722. /*No:CALL_INFIX_DIV.arg1*/
  1723.  
  1724.  
  1725. void r136run_feature_has_result(T136* C){
  1726. /*[IF*/
  1727. if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  1728. r21add_position(X27start_position((C)->_run_feature/*16*/));
  1729. r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  1730. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
  1731. r21fatal_error((T21*)(oBC12eh),b1);
  1732. }/*]*/
  1733. }
  1734. /*FI]*/
  1735. }
  1736.  
  1737.  
  1738. T2 r136jvm_standard_branch_if_false(T136* C){
  1739. T2 R=0;
  1740. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T136* C1=C;
  1741. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1742. }/*]*/
  1743. /*]*/
  1744. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  1745. return R;
  1746. }
  1747.  
  1748.  
  1749. T0* r136run_feature_for(T136* C,T0* a1,T0* a2){
  1750. T0* R=NULL;
  1751. T0* _rc=NULL;
  1752. _rc=X52run_class(X109result_type(a1));
  1753. R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
  1754. return R;
  1755. }
  1756. /*No:CALL_INFIX_DIV.target*/
  1757.  
  1758.  
  1759. void r136error(T0* a1,T0* a2){
  1760. r21add_position(a1);
  1761. r21error((T21*)(oBC12eh),a2);
  1762. }
  1763.  
  1764.  
  1765. void r136make(T136* C,T0* a1,T0* a2,T0* a3){
  1766. C->_target=a1;
  1767. {T141*n=malloc(sizeof(*n));
  1768. *n=M141;
  1769. r141make(n,r136operator(),a2);
  1770. C->_feature_name=(T0*)n;
  1771. }
  1772. {T152*n=malloc(sizeof(*n));
  1773. *n=M152;
  1774. /*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
  1775. /*]*/
  1776. C->_arguments=(T0*)n;
  1777. }
  1778. }
  1779. /*No:CALL_INFIX_DIV.is_current*/
  1780.  
  1781.  
  1782. T2 r136standard_compile_to_jvm_into(T136* C,T0* a1){
  1783. T2 R=0;
  1784. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T136* C1=C;
  1785. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1786. }/*]*/
  1787. /*]*/
  1788. R=X52jvm_convert_to(X52run_type(r136result_type(C)),a1);
  1789. return R;
  1790. }
  1791. /*No:CALL_INFIX_DIV.is_void*/
  1792.  
  1793.  
  1794. T0* r136operator(void){
  1795. T0* R=NULL;
  1796. R=((T0*)ms14_48);
  1797. return R;
  1798. }
  1799.  
  1800.  
  1801. T2 r136jvm_standard_branch_if_true(T136* C){
  1802. T2 R=0;
  1803. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T136* C1=C;
  1804. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1805. }/*]*/
  1806. /*]*/
  1807. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  1808. return R;
  1809. }
  1810.  
  1811.  
  1812. void r136afd_check(T136* C){
  1813. T0* _running=NULL;
  1814. T0* _rc=NULL;
  1815. _rc=X52run_class(X109result_type((C)->_target/*4*/));
  1816. _running=(((T23*)_rc))->_running/*12*/;
  1817. /*[IF*/
  1818. if((_running)==((void*)(NULL))){
  1819. r21add_position(X109start_position((C)->_target/*4*/));
  1820. /*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
  1821. r7append((T7*)(oBC21explanation),b1);
  1822. }/*]*/
  1823. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
  1824. r7append((T7*)(oBC21explanation),b1);
  1825. }/*]*/
  1826. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  1827. r7append((T7*)(oBC21explanation),b1);
  1828. }/*]*/
  1829. r21print_as_warning((T21*)(oBC12eh));
  1830. r23set_at_run_time(((T23*)_rc));
  1831. }
  1832.  else if((r340count(((T340*)_running)))>(1)){
  1833. r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  1834. }
  1835. /*FI]*/
  1836. X109afd_check((C)->_target/*4*/);
  1837. /*[IF*/
  1838. {/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
  1839. }
  1840. /*FI]*/
  1841. }
  1842. /*No:LOCAL_NAME1.static_value*/
  1843. /*No:LOCAL_NAME1.is_used*/
  1844. /*No:LOCAL_NAME1.is_static*/
  1845. /*No:LOCAL_NAME1.is_manifest_string*/
  1846. /*No:LOCAL_NAME1.start_position*/
  1847. /*No:LOCAL_NAME1.to_string*/
  1848.  
  1849.  
  1850. T0* r187add_comment(T187* C,T0* a1){
  1851. T0* R=NULL;
  1852. /*[IF*/
  1853. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  1854. R=(T0*)C;
  1855. }
  1856. else{
  1857. {T234*n=malloc(sizeof(*n));
  1858. *n=M234;
  1859. r234make(n,(T0*)C,a1);
  1860. R=(T0*)n;
  1861. }
  1862. }
  1863. /*FI]*/
  1864. return R;
  1865. }
  1866. /*No:LOCAL_NAME1.rank*/
  1867.  
  1868.  
  1869. T2 r187to_integer(T187* C){
  1870. T2 R=0;
  1871. r187error((C)->_start_position/*4*/,((T0*)ms13_45846));
  1872. return R;
  1873. }
  1874. /*No:LOCAL_NAME1.use_current*/
  1875.  
  1876.  
  1877. T2 r187jvm_branch_if_true(T187* C){
  1878. T2 R=0;
  1879. r187compile_to_jvm(C);
  1880. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  1881. return R;
  1882. }
  1883.  
  1884.  
  1885. T0* r187to_runnable(T187* C,T0* a1){
  1886. T0* R=NULL;
  1887. T0* _rt=NULL;
  1888. _rt=X52to_runnable((C)->_result_type/*12*/,a1);
  1889. /*[IF*/
  1890. if((_rt)==((void*)(NULL))){
  1891. r21add_position(X52start_position((C)->_result_type/*12*/));
  1892. r187error((C)->_start_position/*4*/,((T0*)ms187_24548));
  1893. }
  1894. /*FI]*/
  1895. /*[IF*/
  1896. if((_rt)==((void*)((C)->_result_type/*12*/))){
  1897. R=(T0*)C;
  1898. }
  1899. else{
  1900. R=r187twin(C);
  1901. /*[IRF3.3set_result_type*/((((T187*)(((T187*)R))))->_result_type)=(_rt);
  1902. /*]*/
  1903. }
  1904. /*FI]*/
  1905. return R;
  1906. }
  1907.  
  1908.  
  1909. T2 r187compile_to_jvm_into(T187* C,T0* a1){
  1910. T2 R=0;
  1911. R=r187standard_compile_to_jvm_into(C,a1);
  1912. return R;
  1913. }
  1914. /*No:LOCAL_NAME1.is_pre_computable*/
  1915. /*No:LOCAL_NAME1.fz_iinaiv*/
  1916. /*No:LOCAL_NAME1.result_type*/
  1917.  
  1918.  
  1919. void r187standard_compile_target_to_jvm(T187* C){
  1920. r187compile_to_jvm(C);
  1921. X52jvm_check_class_invariant((C)->_result_type/*12*/);
  1922. }
  1923.  
  1924.  
  1925. void r187compile_to_jvm_assignment(T187* C,T0* a1){
  1926. T2 _jvm_offset=0;
  1927. T2 _space=0;
  1928. _jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
  1929. _space=X109compile_to_jvm_into((((T287*)a1))->_right_side/*8*/,X52run_type((C)->_result_type/*12*/));
  1930. X52jvm_write_local(X52run_type((C)->_result_type/*12*/),_jvm_offset);
  1931. }
  1932. /*No:LOCAL_NAME1.set_is_used*/
  1933. /*No:LOCAL_NAME1.compile_to_jvm_old*/
  1934.  
  1935.  
  1936. void r187jvm_assign(T187* C){
  1937. T2 _jvm_offset=0;
  1938. _jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
  1939. X52jvm_write_local(X52run_type((C)->_result_type/*12*/),_jvm_offset);
  1940. }
  1941.  
  1942.  
  1943. T2 r187jvm_branch_if_false(T187* C){
  1944. T2 R=0;
  1945. r187compile_to_jvm(C);
  1946. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  1947. return R;
  1948. }
  1949.  
  1950.  
  1951. void r187compile_to_jvm(T187* C){
  1952. T2 _jvm_offset=0;
  1953. _jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
  1954. X52jvm_push_local(X52run_type((C)->_result_type/*12*/),_jvm_offset);
  1955. }
  1956.  
  1957.  
  1958. T0* r187base_class_written(T187* C){
  1959. T0* R=NULL;
  1960. R=r70base_class((T70*)(r187written_in(C)));
  1961. return R;
  1962. }
  1963. /*No:LOCAL_NAME1.is_result*/
  1964. /*No:LOCAL_NAME1.can_be_dropped*/
  1965.  
  1966.  
  1967. T0* r187twin(T187* C){
  1968. T0* R=NULL;
  1969. R=malloc(sizeof(*C));
  1970. *((T187*)R)=*C;
  1971. return R;
  1972. }
  1973. /*No:LOCAL_NAME1.name_clash*/
  1974. /*No:LOCAL_NAME1.compile_target_to_jvm*/
  1975. /*No:LOCAL_NAME1.isa_dca_inline_argument*/
  1976.  
  1977.  
  1978. T0* r187written_in(T187* C){
  1979. T0* R=NULL;
  1980. T0* _sp=NULL;
  1981. _sp=(C)->_start_position/*4*/;
  1982. /*[IF*/
  1983. if((_sp)!=((void*)(NULL))){
  1984. R=(((T59*)_sp))->_base_class_name/*0*/;
  1985. }
  1986. /*FI]*/
  1987. return R;
  1988. }
  1989. /*No:LOCAL_NAME1.set_result_type*/
  1990.  
  1991.  
  1992. void r187name_clash_for(T187* C,T0* a1,T0* a2){
  1993. T0* _bc=NULL;
  1994. T0* _rc=NULL;
  1995. T0* _rf=NULL;
  1996. _bc=r187base_class_written(C);
  1997. /*[IF*/
  1998. if(r63has_simple_feature_name(((T63*)_bc),(C)->_to_string/*8*/)){
  1999. _rc=X52run_class(a1);
  2000. _rf=r23get_feature_with(((T23*)_rc),(C)->_to_string/*8*/);
  2001. /*[IF*/
  2002. if((_rf)!=((void*)(NULL))){
  2003. r21add_position(X27start_position(_rf));
  2004. }
  2005. /*FI]*/
  2006. r187error((C)->_start_position/*4*/,a2);
  2007. }
  2008. /*FI]*/
  2009. }
  2010.  
  2011.  
  2012. void r187error(T0* a1,T0* a2){
  2013. r21add_position(a1);
  2014. r21error((T21*)(oBC12eh),a2);
  2015. }
  2016. /*No:LOCAL_NAME1.set_rank*/
  2017.  
  2018.  
  2019. void r187make(T187* C,T0* a1,T0* a2){
  2020. C->_start_position=a1;
  2021. C->_to_string=r86item(a2);
  2022. }
  2023. /*No:LOCAL_NAME1.is_current*/
  2024.  
  2025.  
  2026. T2 r187standard_compile_to_jvm_into(T187* C,T0* a1){
  2027. T2 R=0;
  2028. r187compile_to_jvm(C);
  2029. R=X52jvm_convert_to(X52run_type((C)->_result_type/*12*/),a1);
  2030. return R;
  2031. }
  2032. /*No:LOCAL_NAME1.is_void*/
  2033. /*No:LOCAL_NAME1.afd_check*/
  2034.  
  2035.